package cn.kgc.spring.entity;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * @author: mosin
 * @version: v1.0  2022/4/23
 * bean的生命周期    创建  - > 销毁的过程
 *  1.加载配置文件时 调用无参构造创建对象
 *  2.set方法完成值得设置
 *  3. 指定 初始化的方法
 *  4. 使用对象
 *  5.关闭容器 对象销毁
 */
@Component
public class Emp {

    // @Value("jack")  无需提供set方法
    private String ename;
    private  int age;

    public Emp(){
        System.out.println("1.emp对象被创建");
    }

    @Value("20")
    public void setAge(int age) {
        this.age = age;
        System.out.println("2.set方法被调用");
    }

    public int getAge() {
       return this.age;
    }

    @Value("tom")
    public void setEname(String ename) {
        this.ename = ename;
    }

    @PostConstruct
    public void init(){
        System.out.println("3.初始化的方法被使用 init()");
    }


    @PreDestroy
    public void destroy(){
        System.out.println("销毁的方法被使用 destroy()");
    }
}
